之前小編寫過一篇Wordpress代碼創建自定義分類與自定義文章類型的文章,在那篇文章中小編還提出了一個疑問。
自定義分類法鏈接結構
即:自定義文章類型的鏈接 /shop 和 自定義分類法的鏈接 /shops 是不一致的,這個問題小編經過詳細了解了wordpress的參數后終于解決了。
問題解決的方法僅僅只需要一個參數而已,如下
'rewrite' => array( 'slug' => 'shop', 'with_front' => false ),
只需要在上次小編寫的自定義分類法和自定義文章類型的代碼中加上這串參數即可,參數意思就是重寫自定義文章類型的鏈接。
好了,上次的問題完美解決,下面要改的是自定義文章類型的固定鏈接結構。
自定義文章類型的固定鏈接結構
在創建了自定義文章類型后,大家會發現發布的產品鏈接會是 以 別名形式 展示的,如:/shop/蘇打粉。
是的,如果不手動修改這個鏈接,在后臺顯示是中文,但在瀏覽器顯示那就是一串亂碼了。毫無疑問這非常不美觀且不利于搜索引擎收錄。所以需要將其修改為文章一樣的以 ID形式 的鏈接,即 /shop/123.html。
話不多說,直接上代碼,其中 shop 這個是文章類型,需要修改為自己創建的名稱。
/*
* 設置自定義文章類型的固定鏈接 已ID形式顯示
* http://m.qzkangyuan.com/2346.html
*/
add_filter('post_type_link','custom_shop_link',1,3);
function custom_shop_link($link, $post=0){
if ($post->post_type == 'shop') {
return home_url('shop/'.$post->ID.'.html' );
}else{
return $link;
}
}
add_action('init','custom_shop_rewrites_init');
function custom_shop_rewrites_init(){
add_rewrite_rule('server/([0-9]+)?.html$', 'index.php?post_type=shop&p=$matches[1]','top');
add_rewrite_rule('server/([0-9]+)?.html/comment-page-([0-9]{1,})$', 'index.php?post_type=shop&p=$matches[1]&cpage=$matches[2]','top');
}
建議更新了以上代碼后,重新保存一下固定鏈接,防止404,位置在wordpress后臺設置 - 固定鏈接。